package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 资产信息对象 sys_asset_info
 *
 * @author 陈玉强
 * @date 2025-06-01
 */
@Data
public class SysAssetInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 资产ID */
    private Long assetId;
    private String infoType;
    private String infoTypeName;
    /** 组织架构 */
    @Excel(name = "组织架构")
    private Integer orgId;
    private String orgIdName;
    /** 单位类型 */
    @Excel(name = "单位类型")
    private String orgType;
    private String orgTypeName;
    /** 系统名称 */
    @Excel(name = "系统名称")
    private String systemName;

    /** 系统类型 */
    @Excel(name = "系统类型")
    private String systemType;
    private String systemTypeName;
    /** 是否定级 */
    @Excel(name = "是否定级")
    private String isClassified;
    private String isClassifiedName;
    /** 系统级别 */
    @Excel(name = "系统级别")
    private String systemLevel;
    private String systemLevelName;

    /** 业务信息安全等级 */
    @Excel(name = "业务信息安全等级")
    private String businessSecurityLevel;
    private String businessSecurityLevelName;

    /** 系统服务安全等级 */
    @Excel(name = "系统服务安全等级")
    private String serviceSecurityLevel;
    private String serviceSecurityLevelName;

    /** 是否备案 */
    @Excel(name = "是否备案")
    private String isFiled;
    private String isFiledName;

    /** 备案编号 */
    @Excel(name = "备案编号")
    private String filingNumber;

    /** 是否已测评 */
    @Excel(name = "是否已测评")
    private String isEvaluated;
    private String isEvaluatedName;

    /** 最近测评时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近测评时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastEvaluateTime;

    /** 访问途径 */
    @Excel(name = "访问途径")
    private String accessMethod;
    private String accessMethodName;

    /** 部署位置 */
    @Excel(name = "部署位置")
    private String deployLocation;

    /** 机房地址 */
    @Excel(name = "机房地址")
    private String machineRoomAddress;

    /** 机房主管单位名称 */
    @Excel(name = "机房主管单位名称")
    private String machineRoomManager;

    /** 操作系统 */
    @Excel(name = "操作系统")
    private String osType;
    private String osTypeName;

    /** 操作系统版本 */
    @Excel(name = "操作系统版本")
    private String osVersion;

    /** 中间件 */
    @Excel(name = "中间件")
    private String middlewareType;
    private String middlewareTypeName;

    /** 中间件版本 */
    @Excel(name = "中间件版本")
    private String middlewareVersion;

    /** 数据库 */
    @Excel(name = "数据库")
    private String databaseType;
    private String databaseTypeName;

    /** 数据库版本 */
    @Excel(name = "数据库版本")
    private String databaseVersion;

    /** 应用软件产品 */
    @Excel(name = "应用软件产品")
    private String appProduct;
    private String appProductName;

    /** 应用产品版本 */
    @Excel(name = "应用产品版本")
    private String appVersion;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 办公电话 */
    @Excel(name = "办公电话")
    private String officePhone;

    /** 手机号 */
    @Excel(name = "手机号")
    private String mobilePhone;

    /** 系统开发单位（企业） */
    @Excel(name = "系统开发单位", readConverterExp = "企=业")
    private String developCompany;

    /** 系统运维单位（企业） */
    @Excel(name = "系统运维单位", readConverterExp = "企=业")
    private String maintainCompany;

    /** 系统业务主管单位 */
    @Excel(name = "系统业务主管单位")
    private String businessManager;

    /** 是否已开展商用密码应用安全性评估（0否 1是） */
    @Excel(name = "是否已开展商用密码应用安全性评估", readConverterExp = "0=否,1=是")
    private String isSecurityEvaluated;
    private String isSecurityEvaluatedName;

    /** 最近密评时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近密评时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastSecurityEvaluateTime;

    /** 系统用户数量 */
    @Excel(name = "系统用户数量")
    private Long userCount;

    /** 云服务安全评估 */
    @Excel(name = "云服务安全评估")
    private String isCloudEvaluated;
    private String isCloudEvaluatedName;

    /** 状态 */
    @Excel(name = "状态")
    private String status;
    private String statusName;

    private List<SysAssetGx> sysAssetGx;

    /** 删除标志 */
    private String delFlag;

    public void setAssetId(Long assetId)
    {
        this.assetId = assetId;
    }

    public Long getAssetId()
    {
        return assetId;
    }

    public void setOrgType(String orgType)
    {
        this.orgType = orgType;
    }

    public String getOrgType()
    {
        return orgType;
    }
    public void setSystemName(String systemName)
    {
        this.systemName = systemName;
    }

    public String getSystemName()
    {
        return systemName;
    }
    public void setSystemType(String systemType)
    {
        this.systemType = systemType;
    }

    public String getSystemType()
    {
        return systemType;
    }
    public void setIsClassified(String isClassified)
    {
        this.isClassified = isClassified;
    }

    public String getIsClassified()
    {
        return isClassified;
    }
    public void setSystemLevel(String systemLevel)
    {
        this.systemLevel = systemLevel;
    }

    public String getSystemLevel()
    {
        return systemLevel;
    }
    public void setBusinessSecurityLevel(String businessSecurityLevel)
    {
        this.businessSecurityLevel = businessSecurityLevel;
    }

    public String getBusinessSecurityLevel()
    {
        return businessSecurityLevel;
    }
    public void setServiceSecurityLevel(String serviceSecurityLevel)
    {
        this.serviceSecurityLevel = serviceSecurityLevel;
    }

    public String getServiceSecurityLevel()
    {
        return serviceSecurityLevel;
    }
    public void setIsFiled(String isFiled)
    {
        this.isFiled = isFiled;
    }

    public String getIsFiled()
    {
        return isFiled;
    }
    public void setFilingNumber(String filingNumber)
    {
        this.filingNumber = filingNumber;
    }

    public String getFilingNumber()
    {
        return filingNumber;
    }
    public void setIsEvaluated(String isEvaluated)
    {
        this.isEvaluated = isEvaluated;
    }

    public String getIsEvaluated()
    {
        return isEvaluated;
    }
    public void setLastEvaluateTime(Date lastEvaluateTime)
    {
        this.lastEvaluateTime = lastEvaluateTime;
    }

    public Date getLastEvaluateTime()
    {
        return lastEvaluateTime;
    }
    public void setAccessMethod(String accessMethod)
    {
        this.accessMethod = accessMethod;
    }

    public String getAccessMethod()
    {
        return accessMethod;
    }

    public void setDeployLocation(String deployLocation)
    {
        this.deployLocation = deployLocation;
    }

    public String getDeployLocation()
    {
        return deployLocation;
    }
    public void setMachineRoomAddress(String machineRoomAddress)
    {
        this.machineRoomAddress = machineRoomAddress;
    }

    public String getMachineRoomAddress()
    {
        return machineRoomAddress;
    }
    public void setMachineRoomManager(String machineRoomManager)
    {
        this.machineRoomManager = machineRoomManager;
    }

    public String getMachineRoomManager()
    {
        return machineRoomManager;
    }
    public void setOsType(String osType)
    {
        this.osType = osType;
    }

    public String getOsType()
    {
        return osType;
    }
    public void setOsVersion(String osVersion)
    {
        this.osVersion = osVersion;
    }

    public String getOsVersion()
    {
        return osVersion;
    }

    public void setMiddlewareVersion(String middlewareVersion)
    {
        this.middlewareVersion = middlewareVersion;
    }

    public String getMiddlewareVersion()
    {
        return middlewareVersion;
    }
    public void setDatabaseType(String databaseType)
    {
        this.databaseType = databaseType;
    }

    public String getDatabaseType()
    {
        return databaseType;
    }
    public void setDatabaseVersion(String databaseVersion)
    {
        this.databaseVersion = databaseVersion;
    }

    public String getDatabaseVersion()
    {
        return databaseVersion;
    }
    public void setAppProduct(String appProduct)
    {
        this.appProduct = appProduct;
    }

    public String getAppProduct()
    {
        return appProduct;
    }
    public void setAppVersion(String appVersion)
    {
        this.appVersion = appVersion;
    }

    public String getAppVersion()
    {
        return appVersion;
    }
    public void setContactPerson(String contactPerson)
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson()
    {
        return contactPerson;
    }
    public void setOfficePhone(String officePhone)
    {
        this.officePhone = officePhone;
    }

    public String getOfficePhone()
    {
        return officePhone;
    }
    public void setMobilePhone(String mobilePhone)
    {
        this.mobilePhone = mobilePhone;
    }

    public String getMobilePhone()
    {
        return mobilePhone;
    }
    public void setDevelopCompany(String developCompany)
    {
        this.developCompany = developCompany;
    }

    public String getDevelopCompany()
    {
        return developCompany;
    }
    public void setMaintainCompany(String maintainCompany)
    {
        this.maintainCompany = maintainCompany;
    }

    public String getMaintainCompany()
    {
        return maintainCompany;
    }
    public void setBusinessManager(String businessManager)
    {
        this.businessManager = businessManager;
    }

    public String getBusinessManager()
    {
        return businessManager;
    }
    public void setIsSecurityEvaluated(String isSecurityEvaluated)
    {
        this.isSecurityEvaluated = isSecurityEvaluated;
    }

    public String getIsSecurityEvaluated()
    {
        return isSecurityEvaluated;
    }
    public void setLastSecurityEvaluateTime(Date lastSecurityEvaluateTime)
    {
        this.lastSecurityEvaluateTime = lastSecurityEvaluateTime;
    }

    public Date getLastSecurityEvaluateTime()
    {
        return lastSecurityEvaluateTime;
    }
    public void setUserCount(Long userCount)
    {
        this.userCount = userCount;
    }

    public Long getUserCount()
    {
        return userCount;
    }
    public void setIsCloudEvaluated(String isCloudEvaluated)
    {
        this.isCloudEvaluated = isCloudEvaluated;
    }

    public String getIsCloudEvaluated()
    {
        return isCloudEvaluated;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("assetId", getAssetId())

            .append("orgType", getOrgType())
            .append("systemName", getSystemName())
            .append("systemType", getSystemType())
            .append("isClassified", getIsClassified())
            .append("systemLevel", getSystemLevel())
            .append("businessSecurityLevel", getBusinessSecurityLevel())
            .append("serviceSecurityLevel", getServiceSecurityLevel())
            .append("isFiled", getIsFiled())
            .append("filingNumber", getFilingNumber())
            .append("isEvaluated", getIsEvaluated())
            .append("lastEvaluateTime", getLastEvaluateTime())
            .append("accessMethod", getAccessMethod())

            .append("deployLocation", getDeployLocation())
            .append("machineRoomAddress", getMachineRoomAddress())
            .append("machineRoomManager", getMachineRoomManager())
            .append("osType", getOsType())
            .append("osVersion", getOsVersion())
            .append("middlewareVersion", getMiddlewareVersion())
            .append("databaseType", getDatabaseType())
            .append("databaseVersion", getDatabaseVersion())
            .append("appProduct", getAppProduct())
            .append("appVersion", getAppVersion())
            .append("contactPerson", getContactPerson())
            .append("officePhone", getOfficePhone())
            .append("mobilePhone", getMobilePhone())
            .append("developCompany", getDevelopCompany())
            .append("maintainCompany", getMaintainCompany())
            .append("businessManager", getBusinessManager())
            .append("isSecurityEvaluated", getIsSecurityEvaluated())
            .append("lastSecurityEvaluateTime", getLastSecurityEvaluateTime())
            .append("userCount", getUserCount())
            .append("isCloudEvaluated", getIsCloudEvaluated())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
